package com.eeds.service.user;


import com.eeds.common.model.PageInfo;
import com.eeds.model.user.req.*;
import com.eeds.model.user.res.ResGetUserInfoListVO;
import com.eeds.model.user.res.ResGetUserInfoVO;
import com.eeds.model.user.res.ResLoginVo;

import java.util.List;

/**
 * @author Flying
 * @Description
 * @date 14:41 2018-08-24
 **/
public interface UserService {

    /**
     * 用户登陆
     * @param reqLoginVo
     * @return
     */
    ResLoginVo login(ReqLoginVo reqLoginVo);

    /**
     * 登陆PC接口
     * @param reqLoginVo
     * @return
     */
    ResLoginVo loginPC(ReqLoginVo reqLoginVo);

    /**
     * 修改用户信息
     * @param reqUpdateUserInfoVO
     * @return
     */
    Integer updateUserInfo(ReqUpdateUserInfoVO reqUpdateUserInfoVO);

    /**
     * 添加用户信息
     * @param reqAddUserInfoVO
     * @return
     */
    Integer addUserInfo(ReqAddUserInfoVO reqAddUserInfoVO);

    /**
     * 获取用户信息列表
     * @param reqGetUserInfoListVO
     * @return
     */
    PageInfo<ResGetUserInfoListVO> getUserInfoList(ReqGetUserInfoListVO reqGetUserInfoListVO);

    /**
     * 删除用户
     * @param reqDeleteUserVO
     * @return
     */
    Integer deleteUser(ReqDeleteUserVO reqDeleteUserVO);

    /**
     * 修改用户密码
     * @param reqUpdateUserPasswordVO
     * @return
     */
    Integer updateUserPassword(ReqUpdateUserPasswordVO reqUpdateUserPasswordVO);

    /**
     * 重置用户密码
     * @param reqResetUserPasswordVO
     * @return
     */
    Integer resetUserPassword(ReqResetUserPasswordVO reqResetUserPasswordVO);

    /**
     * 获取用户信息
     * @param reqGetUserInfoVO
     * @return
     */
    ResGetUserInfoVO getUserInfo(ReqGetUserInfoVO reqGetUserInfoVO);

    /**
     * 获取用户信息所有列表
     * @return
     */
    List<ResGetUserInfoListVO> getUserInfoListAll();

}
